const {
  getUserInfo
} = require('../service/user.service')

// 用户合法性判断
const userValidator = async (ctx, next) => {
  const {
    user_name,
    password
  } = JSON.parse(ctx.request.body)
  if( !user_name || !password ) {
    ctx.status = 400
    ctx.body = {
      code: "10001",
      message: '用户名或密码为空',
      result: ''
    }
    return
  }  

  // 验证通过则交由下个中间件处理
  await next()
}

// 合理性判断
const verifyUser = async (ctx, next) => {
  const {
    user_name
  } = JSON.parse(ctx.request.body)
  // 根据用户名查询用户信息, 如果用户存在return
  if (await getUserInfo({user_name})) {
    // 资源冲突
    ctx.status = 409
    ctx.body = {
      code: '10002',
      message: '用户已存在',
      result: ''
    }
    return
  }

  // 验证通过则交由下个中间件处理
  await next()
}

module.exports = {
  userValidator,
  verifyUser
}